package com.diligent.cloud.sfc.service;

import com.canny.commons.model.ObjectResult;
import com.diligent.cloud.sfc.model.params.ConsumablesOutOfWarehouseParams;
import com.diligent.cloud.sfc.model.params.FinishedGoodsOutOfWarehouseParams;
import com.diligent.cloud.wip.core.vo.GuideMaster;
import com.diligent.cloud.wip.core.vo.StorageLedgerInfo;
import com.diligent.cloud.wip.panel.modle.WipStorageBin;
import org.springframework.http.ResponseEntity;

import java.security.Principal;
import java.util.List;

/**
 * WipService interface
 *
 * @author xf107278
 * @date 4/7/2020
 */
public interface WipService {

    ResponseEntity<ObjectResult> getInventoryByMatCodeAndCwocCode(String matCode, String cwocCode, String batchCode, Long systemId);

    ResponseEntity<ObjectResult> addMatStorage(GuideMaster guideMaster, Principal principal);

    ResponseEntity<ObjectResult> updateMatStorage(FinishedGoodsOutOfWarehouseParams finishedGoodsWarehouseParams);

    ResponseEntity<ObjectResult> updateConsumeStorage(ConsumablesOutOfWarehouseParams consumeOutOfStorageParams);

    ResponseEntity<ObjectResult> getInventoryByMatCodeAndCwocCodes(String cwocCode, Long systemId, List<StorageLedgerInfo> sameList);

    ResponseEntity<ObjectResult> addWipStorageBin(WipStorageBin wipStorageBin, Principal principal);

    ResponseEntity<ObjectResult> getTransportingMatInventory(String matCode, String cwocCode, String batchCode, Long systemId);
}
